<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html><meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>Review of Error Handling Frameworks - Boost.Outcome documentation</title>
<link rel="stylesheet" href="./css/boost.css" type="text/css">
<meta name="generator" content="Hugo 0.52 with Boostdoc theme">
<meta name="viewport" content="width=device-width,initial-scale=1.0"/>

<link rel="icon" href="./images/favicon.ico" type="image/ico"/>
<body><div class="spirit-nav">
<a accesskey="p" href="./build.html"><img src="./images/prev.png" alt="Prev"></a>
    <a accesskey="u" href="./index.html"><img src="./images/up.png" alt="Up"></a>
    <a accesskey="h" href="./index.html"><img src="./images/home.png" alt="Home"></a><a accesskey="n" href="./alternatives/exceptions.html"><img src="./images/next.png" alt="Next"></a></div><div id="content">

  <div class="titlepage"><div><div><h1 style="clear: both">Review of Error Handling Frameworks</h1></div></div></div>
<p>Outcome <a href="./history.html">started life in 2014</a>, entered Boost as Boost.Outcome in 2018, and therefore was amongst the very first of the major alternative error handling frameworks to standard exception throws in C++. Since then, and sometimes in reaction to Outcome&rsquo;s choice of design, alternative frameworks have appeared. This page tries to give a fairly even handed summary of those alternatives, and how they compare to Outcome in this author&rsquo;s opinion.</p>

<p>These are listed in order of approximate availability to the C++ ecosystem i.e. in order of appearance.</p>

<ol class="children children-li"><li>
	<a href="./alternatives/exceptions.html" >std exception throws</a>
<p>Advantages and disadvantages of C++ exception throws</p><li>
	<a href="./alternatives/error_code.html" >std error codes</a>
<p>Advantages and disadvantages of <code>std::error_code</code></p><li>
	<a href="./alternatives/expected.html" >std expected</a>
<p>Advantages and disadvantages of <code>std::expected&lt;T, E&gt;</code></p><li>
	<a href="./alternatives/outcome.html" >Outcome (proposed std result)</a>
<p>Advantages and disadvantages of Outcome and its proposed <code>std::result&lt;T&gt;</code></p><li>
	<a href="./alternatives/leaf.html" >LEAF</a>
<p>Advantages and disadvantages of Lightweight Error Augmentation Framework</p></li></ol>

<p>My thanks to Emil Dotchevski for reviewing this summary and providing notes.</p>







        </div><p><small>Last revised: January 10, 2022 at 14:29:13 UTC</small></p>
<hr>
<div class="spirit-nav">
<a accesskey="p" href="./build.html"><img src="./images/prev.png" alt="Prev"></a>
    <a accesskey="u" href="./index.html"><img src="./images/up.png" alt="Up"></a>
    <a accesskey="h" href="./index.html"><img src="./images/home.png" alt="Home"></a><a accesskey="n" href="./alternatives/exceptions.html"><img src="./images/next.png" alt="Next"></a></div></body>
</html>
